﻿using System.Collections.Generic;

namespace Client.Client_Component
{
    public interface KundeService
    {
        /// <summary>
        /// Erstellt einen neuen Kunden.
        /// </summary>
        /// <param name="kundeDTO">Kunde</param>
        void CreateKunde(KundeDTO kundeDTO);

        /// <summary>
        /// Aktualisiert einen vorhandenen Kunden oder erstellt ihn neu, wenn 
        /// kein Kunde mit entsprechender Kundennummer vorhanden ist.
        /// </summary>
        /// <param name="kundeDTO">Kunde</param>
        void CreateOrUpdateKunde(KundeDTO kundeDTO);

        /// <summary>
        /// Sucht einen konkreten Kunden anhand seiner Kundennummer.
        /// </summary>
        /// <param name="nummer">Kundennummer</param>
        /// <returns>KundeDTO | null</returns>
        KundeDTO FindKunde(int nummer);

        /// <summary>
        /// Sucht konkrete Kunden anhand eines Nachnamens.
        /// </summary>
        /// <param name="nachname">Nachname</param>
        /// <returns>List<KundeDTO></returns>
        List<KundeDTO> FindKunden(string nachname);

        /// <summary>
        /// Löscht einen vorhandenen Kunden.
        /// </summary>
        /// <param name="nummer">Kundennummer</param>
        void DeleteKunde(int nummer);
    }
}
